//
//  Game.h
//  Dungeons and Princesses
//
//  Created by phuong on 10/15/11.
//  Copyright (c) 2011 SD Networks. All rights reserved.
//

#ifndef Dungeons_and_Princesses_Game_h
#define Dungeons_and_Princesses_Game_h

#include "Castle.h"
#include "Room.h"
#include "string"
#include <sstream>
#include "Player.h"
//#include "TextInterface.h"

// these functions will go in utility class
//string lowerCase(string takeOrder);
//string getCommand(string takeOrder);
class Interface;

class Game {
    Room * currentRoom;
    Castle * gameCastle;
    Interface * myInterface;
    Player *currentPlayer;
    
    std::string dropObject(std::string objectType, int objectID);
    std::string getObject(std::string objectType, int objectID);
    
    void dropAll(vector<Listing>const * inventoryList);
    
    // load help from file into strings for display
    vector<std::string> * loadHelp();
    
    int numberOfQuitRequests;
    
public:
    Game ();
    void run(int argc, char* argv[]);
    void testDelegate(std::string myStringToTest);
    void executeCommand(std::string commandToParse);
    void setupPlayer(std::string playerName);
    
    Player * getCurrentPlayer();
    Room * getCurrentRoom();
};

#endif
